﻿using System;
using System.Collections.ObjectModel;
using System.Windows;
using PairingMatrix.Common;
using PairingMatrix.Common.Command;
using PairingMatrix.Common.Enum;
using PairingMatrix.Model;
using PairingMatrix.ViewModel;

namespace PairingMatrix.Design
{
    public class ProjectCardViewModel : IProjectCardViewModel
    {
        public int CardNumber
        {
            get { return 1234567; }
            set
            {
            }
        }

        public int Priority
        {
            get { return 4; }
            set {  }
        }

        public string Title
        {
            get { return "Missing Booking not working on production at all"; }
            set
            {
            }
        }

        public string Note
        {
            get { return "Do something"; }
            set { throw new NotImplementedException(); }
        }

        public Point CenterPoint { get; set; }

        public Point Position { get; set;}

        public Point PositionOnWallOnly
        {
            set {  }
        }

        public bool ShowHighlighted
        {
            get { throw new NotImplementedException(); }
            set { throw new NotImplementedException(); }
        }

        public ProjectCardModel Model
        {
            get { throw new NotImplementedException(); }
        }

        public StoryStatus DevStage
        {
            get { return StoryStatus.ReadyForDev; }
            set { throw new NotImplementedException(); }
        }

        public string StatusInMingle
        {
            get { return "Ready For Regression Testing"; }
        }

        public bool ShowCard
        {
            get { throw new NotImplementedException(); }
            set { throw new NotImplementedException(); }
        }

        public bool IsCardVisibleInCurrentWall
        {
            get { throw new NotImplementedException(); }
        }

        public bool CanAcceptMoreTeamMember()
        {
            throw new NotImplementedException();
        }

        public bool IsSyncing
        {
            get { return true; }
        }

        public int NumberOfSignUps
        {
            get { return 16; }
        }

        public double DevEstimate
        {
            get { return 3; }
        }

        public Urgency Urgency
        {
            get { return Urgency.NotUrgent; }
        }

        public ProjectCardModel PrimaryCard
        {
            get { throw new NotImplementedException(); }
        }

        public bool ShowDaysSpentForProjectCards
        {
            get { return true; }
        }

        public ObservableCollection<IProjectCardViewModel> SecondaryProjectCards { get; set; }

        public RelayCommand RemoveFromWallCommand
        {
            get { throw new NotImplementedException(); }
        }

        public RelayCommand ToggleNotesVisibilityCommand
        {
            get { throw new NotImplementedException(); }
        }

        public int ZIndex
        {
            get { throw new NotImplementedException(); }
            set { throw new NotImplementedException(); }
        }
    }
}